<?php if ( ! defined('BASEPATH')) exit('No se permite acceso directo al script');
class Util_stock {

    public function cargarStock($id, $fecha, $cantidad, $costoUnit, $lote, $numSerie, $observaciones, $id_refOrigen,
                                $id_prod, $id_moto, $id_origen, $id_deposito, $id_divisa, $usuario, $unidad, $id_proveedor)
    {
        $objEntidad = new Prod_stock($id);

        $objEntidad->fecha = $fecha;
        $objEntidad->cantidad = $cantidad;
        $objEntidad->costo_unitario = $costoUnit;
        $objEntidad->lote = $lote;
        $objEntidad->numeroSerie = $numSerie;
        $objEntidad->observaciones = $observaciones;
        $objEntidad->id_referencia_origen = $id_refOrigen;
        $objEntidad->usuario = $usuario;

        $objEntidad->prod_producto_id = $id_prod;
        $objEntidad->prod_moto_id = $id_moto;
        $objEntidad->prod_origen_id = $id_origen;
        $objEntidad->prod_deposito_id = $id_deposito;
        $objEntidad->div_divisa_id = $id_divisa;
        $objEntidad->conf_unidad_negocio_id = $unidad;
        $objEntidad->persona_id = $id_proveedor;

        return $objEntidad;
    }

    public function guardar($datos)
    {
        $dataView['error'] = '';

        $objEntidad = $dataView['objEntidad'] = $datos['objEntidad'];
        $objRelacionados = $datos['objRelacionados'];

        # Se manejan transacciones para interactuar con la BD
        $objEntidad->trans_begin();
        $operacion_exitosa = $objEntidad->save($objRelacionados);
        if(!$operacion_exitosa && !$objEntidad->valid)
        { 
            # Falló la validación de datos de acuerdo a las reglas de los modelos
            $dataView['error'] = $objEntidad->error->string; 
        }
        else
        {
            if ($objEntidad->trans_status() === FALSE) # Si la transacción falló, hago un rollback 
                $objEntidad->trans_rollback();
            else # Transacción exitosa, realizo el commit 
                $objEntidad->trans_commit();

            # Almaceno todos los errores que hubieran podido ocurrir
            $dataView['error'] = $objEntidad->error->string;
        }

        $dataView['objEntidad'] = $objEntidad;
        return $dataView;
    }
}
/* Fin del archivo */